<?php

class FormularioDeAtividades extends Model{
	/*******************
	 * ATRIBUTOS
	 *******************/

	private $palestras;
	private $cursos;
	private $voluntariados;
	private $outros;
	private $informacoesComplementares;
	private $atividades;
	private $camposPreenchidos;


	/*******************
	 * CONSTRUTOR
	 *******************/

	public function FormularioDeAtividades($atividades = null){
		$this->palestras = array();
		$this->cursos = array();
		$this->voluntariados = array();
		$this->outros = array();
		$this->informacoesComplementares = "";
		$this->atividades = array();
		$this->camposPreenchidos = array();
		if(isset($atividades)){
			$this->carregarDadosDoFormulario($atividades);
		}
	}

	/*******************
	 * METODOS
	 *******************/

	public function definirCampoPreenchido($nomeDoCAmpo, $valorDoCampo){
		$this->camposPreenchidos[$nomeDoCAmpo] = $valorDoCampo;
	}

	public function obterCampoPreenchido($nomeDoCampo){
		if(isset($this->camposPreenchidos[$nomeDoCampo])){
			return $this->camposPreenchidos[$nomeDoCampo];
		}
		else{
			return "";
		}
	}

	public function isCampoPreenchido($nomeDoCampo){
		if(isset($this->camposPreenchidos[$nomeDoCampo])){
			return true;
		}
		else{
			return false;
		}
	}

	//Repreencher o formulario em caso de carregamento do formulario, seja pela session ou pelo Banco de Dados
	private function carregarDadosDoFormulario($atividade){

		$palestras = $atividade->getPalestras();
		$cursos = $atividade->getCursos();
		$voluntariados = $atividade->getVoluntariados();
		$outros = $atividade->getAtividadesComplementares();
		$informacoesComplementares = $atividade->getInformacoesComplementares();

		$quantidadeDePalestras = count($palestras);
		$quantidadeDeCursos = count($cursos);
		$quantidadeDeVoluntariados = count($voluntariados);
		$quantidadeDeAtividadesOutras = count($outros);

		$palestra = "";
		for($indiceAtividade = 0; $indiceAtividade < $quantidadeDePalestras; $indiceAtividade++){
			$palestra = $palestras[$indiceAtividade];
				
			if($palestra!= null && $palestra->getTituloPalestra() != ""){
				$this->definirCampoPreenchido("palestra" . ($indiceAtividade + 1), $palestra->getTituloPalestra());
			}
		}
		$curso = "";
		for($indiceAtividade = 0; $indiceAtividade < $quantidadeDeCursos; $indiceAtividade++){
			$curso = $cursos[$indiceAtividade];
				
			if($curso!= null && $curso->getNomeDoCurso() != ""){
				$this->definirCampoPreenchido("curso" . ($indiceAtividade + 1), $curso->getNomeDoCurso());
			}
		}
		
		$voluntariado = "";
		for($indiceAtividade = 0; $indiceAtividade < $quantidadeDeVoluntariados; $indiceAtividade++){
			$voluntariado = $voluntariados[$indiceAtividade];
				
			if($voluntariado!= null && $voluntariado->getNomeDaFuncao() != ""){
				$this->definirCampoPreenchido("voluntariado" . ($indiceAtividade + 1), $voluntariado->getNomeDaFuncao());
			}
		}
		
		$outro = "";
		for($indiceAtividade = 0; $indiceAtividade < $quantidadeDeAtividadesOutras; $indiceAtividade++){
			$outro = $outros[$indiceAtividade];
				
			if($outro!= null && $outro->getNomeDaAtividade() != ""){
				$this->definirCampoPreenchido("outro" . ($indiceAtividade + 1), $outro->getNomeDaAtividade());
			}
		}
		
		if($informacoesComplementares != null && $informacoesComplementares != ""){
			$this->definirCampoPreenchido("informacoesComplementares", $informacoesComplementares);
		}
		
	}

	//Tentativa de definir os campos já preenchidos pelo usuário em caso de erro ou qualquer outra necessidade
	public function recarregarDadosDoFormulario(){
		$palestra = "";
		$curso = "";
		$voluntariado = "";
		$outro = "";
		$informacoesComplementares = $_POST['informacoesComplementares'];

		if($informacoesComplementares != null || $informacoesComplementares != ""){
			$this->definirCampoPreenchido("informacoesComplementares", $informacoesComplementares);
		}


		$indiceAtividade = 1;
		//Varre os campos em busca de algum preenchido
		while(isset($_POST['palestra' . $indiceAtividade]) ||
		isset($_POST['curso' . $indiceAtividade]) ||
		isset($_POST['voluntariado' . $indiceAtividade]) ||
		isset($_POST['outro' . $indiceAtividade])
		){

			$palestra = $_POST['palestra' . $indiceAtividade];
			$curso = $_POST['curso' . $indiceAtividade];
			$voluntariado = $_POST['voluntariado' . $indiceAtividade];
			$outro = $_POST['outro' . $indiceAtividade];

			if($palestra != null && $palestra != ""){
				$this->definirCampoPreenchido("palestra" . $posicao, $palestra);
			}
			if($curso != null && $curso != ""){
				$this->definirCampoPreenchido("curso" . $posicao, $curso);
			}
			if($voluntariado != null && $voluntariado != ""){
				$this->definirCampoPreenchido("voluntariado" . $posicao, $voluntariado);
			}
			if($outro != null && $outro != ""){
				$this->definirCampoPreenchido("outro" . $posicao, $outro);
			}
				
		}

	}

}
?>